home *** CD-ROM | disk | FTP | other *** search
- 310 '*******************************************************
- 320 '* EUCLID'S ALGORITHM FOR GREATEST COMMON DIVISORS *
- 330 '* BY ROBERT T. KUROSAKA *
- 340 '*******************************************************
- 350 CLS
- 360 PRINT "This program calculates the greatest common divisor"
- 370 PRINT "of a positive fraction"
- 380 PRINT "and reduces the fraction to lowest terms."
- 390 PRINT :PRINT
- 400 INPUT "ENTER THE FRACTION'S NUMERATOR";NUM:NUM=ABS(NUM)
- 410 INPUT "ENTER THE FRACTION'S DENOMINATOR";DEN:DEN=ABS(DEN)
- 420 DIVISOR=NUM:DIVIDEND=DEN 'SAVE ORIGINAL VALUES FOR LATER DISPLAY
- 430 REM IF EITHER TERM IS NOT A WHOLE NUMBER, CLEAR THE DECIMAL.
- 440 IF DIVISOR<>INT(DIVISOR) OR DIVIDEND<>INT(DIVIDEND) THEN DIVISOR=DIVISOR*10: DIVIDEND=DIVIDEND*10:NUM=DIVISOR:DEN=DIVIDEND:GOTO 440
- 450 IF DIVISOR>DIVIDEND THEN SWAP DIVISOR, DIVIDEND
- 460 WHILE DIVISOR>0
- 470 QUOTIENT=INT(DIVIDEND/DIVISOR)
- 480 REMAINDER=DIVIDEND-DIVISOR*QUOTIENT
- 490 DIVIDEND=DIVISOR:DIVISOR=REMAINDER
- 500 WEND
- 510 PRINT :PRINT
- 520 PRINT "THE FRACTION ";NUM;"/";DEN;" HAS A G.C.D. OF ";DIVIDEND
- 530 IF DIVIDEND=1 THEN PRINT "THE FRACTION IS ALREADY IN LOWEST TERMS.":GOTO 560
- 540 PRINT "THE REDUCED FRACTION IS: ";NUM/DIVIDEND;" /";DEN/DIVIDEND;
- 550 IF DEN/DIVIDEND=1 THEN PRINT " = ";NUM/DIVIDEND
- 560 END